package part2.thread;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
 * Thread提供了一个静态方法:
 * static void sleep(long ms)
 * 可以使执行这个方法的线程进入阻塞状态指定毫秒,超时后线程会自动回到RUNNABLE状态再次并发执行
 */
public class SleepDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了");
       /*
            实现建议的倒计时程序
            程序启动后在控制台上输入一个数字,然后从该数字开始每秒递减.到0时输出"时间到",然后程序结束
         */
        //Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个数字开始倒计时:");
        BufferedReader br = new BufferedReader(
                new InputStreamReader(
                        System.in //低级流，从控制台上读取内容
                )
        );
        String line = null;
        try {
            line = br.readLine(); //读取一行字符串
        } catch (IOException e) {
            e.printStackTrace();
        }
        int num = Integer.parseInt(line); //将字符串转换为整数
        for (int i = num; i > 0; i--) {
            System.out.println(i);
            try {
                Thread.sleep(1000);//主线程执行时会阻塞5秒
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("时间到");


        try {
            Thread.sleep(5000); //主线程执行是会阻塞5秒
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("程序结束了");
    }
}
